//Go基础语法学习

//1. 计算器：编写一个程序，接受两个整数和一个操作符（如 +, -, *, /），并输出计算结果。

package main

//
//import "fmt"
//
//func main() {
//	var a, b, res int
//	var c string
//	fmt.Println("请输入你要计算的内容，以空格分割。如 2 + 3")
//	fmt.Scanf("%d %s %d", &a, &c, &b)
//
//	res = caculate(a, b, c)
//	fmt.Printf("%d %s %d的结果是%d", a, c, b, res)
//}
//func caculate(a, b int, c string) int {
//	var res int
//	switch c {
//	case "+":
//		res = a + b
//	case "-":
//		res = a - b
//	case "*":
//		res = a * b
//	case "/":
//		res = a / b
//	default:
//		res = 0
//	}
//	return res
//}

//2. 查找最大值：编写一个函数，接受一个整数切片，返回该切片中的最大值。
//
//package main
//
//import (
//	"bufio"
//	"fmt"
//	"os"
//	"strconv"
//	"strings"
//)
//
//func main() {
//	reader := bufio.NewReader(os.Stdin)
//	fmt.Printf("请输入一串数字：")
//	input, _ := reader.ReadString('\n') //'' 和" " 区别
//	str := strings.TrimSpace(input)
//	slice := strings.Fields(str) //字符串转切片
//	var num_slice []int //创建切片
//
//	for i := 0; i < len(slice); i++ {
//		num, _ := strconv.Atoi(slice[i]) //字符串转数字
//		num_slice = append(num_slice, num)
//	}
//
//	fmt.Print("你输入的数字是", slice)
//	fmt.Printf("最大值是%d", get_max(num_slice))
//	//fmt.Print(reflect.TypeOf(slice))	//reflect查看类型
//	//fmt.Printf("%T", slice)	//%T也可以查看类型
//
//}
//
//func get_max(a []int) int {
//	slice := a
//	max := 0
//	for i := 0; i < len(slice)-1; i++ {
//		if slice[i+1] > slice[i] {
//			max = slice[i+1]
//		}
//	}
//	return max
//}

// 3. 字符串反转：创建一个函数，接受一个字符串，并返回其反转后的字符串。
//package main
//
//import (
//	"fmt"
//	"strings"
//)
//
//func main() {
//	fmt.Print("请输入一个字符串：")
//	var str string
//	_, err := fmt.Scanln(&str)
//	if err != nil {
//		return
//	}
//	fmt.Printf("反转后的结果：%v", reverseStr(str))
//
//}
//func reverseStr(str string) string {
//	var strList, strReverse []string
//	// 字符串转切片
//	for _, i := range str {
//		strList = append(strList, string(i))
//	}
//	fmt.Println("初始字符串：", strList)
//	for i := len(strList) - 1; i >= 0; i-- {
//		strReverse = append(strReverse, strList[i])
//	}
//	return strings.Join(strReverse, "")
//}

//简单的命令行计数器：编写一个程序，读取用户输入的字符串，统计并输出其中的字母数、数字数和空格数。

//偶数和奇数：编写一个程序，接受一个整数切片，输出所有的偶数和奇数
